// 用户名输入框的监听器
const usernameInput = document.getElementById('username');

// 监听输入事件
usernameInput.addEventListener('input', validateUsername);

function validateUsername() {
    const value = usernameInput.value.trim();
    if (!value) {
        showError(usernameInput, '用户名不能为空');
        return false;
    } else if (value.length < 4 || value.length > 16) {
        showError(usernameInput, '用户名长度应为4-16位');
        return false;
    } else if (!/^(?![0-9]+$)[A-Za-z][A-Za-z0-9_]{3,19}$/.test(value)) {
        showError(usernameInput, '需以字母开头，可包含数字和下划线，长度4-20位，不能全为数字');
        return false;
    } else {
        fetch("/erb/api/auth/check-username?username=" + value, {
            method: "POST",
            credentials: "include"
        }).then(response => {
            if (response.ok) {
                return response.json();
            } else {
                showError(usernameInput, "查询服务不可用，请稍后再试")
                return false;
            }
        }).then(data => {
            if (data.data) {
                showError(usernameInput, "用户名已被占用，请更换用户名")
                return false;
            } else {
                showSuccess(usernameInput)
                return true;
            }
        }).catch(error => {
            console.error(error);
            return false;
        })
    }
}